//
//  Note.h
//  SwiftDeveloper
//
//  Created by 李爽 on 15/11/13.
//  Copyright (c) 2015年 Shawn Li. All rights reserved.
//

Swift
A.类和结构体的区别
二者区别如下：
1，类可以继承和扩展，结构体不可以
2，可以让一个类的实例来反初始化，释放存储空间，结构体做不到
3，类的对象是引用类型，而结构体是值类型。所以类的赋值是传递引用，结构体则是传值。

相同点：
1，定义属性用于储存值
2，定义方法用于提供功能
3，定义下标用于通过下标语法访问值
4，定义初始化器用于生成初始化值




B.访问控制（private，internal，public）
在Swift语言中，访问修饰符有三种，分别为private，internal和public。同时，Swift对于访问权限的控制，不是基于类的，而是基于文件的。其区别如下：
1，private
private访问级别所修饰的属性或者方法只能在当前的Swift源文件里可以访问。

2，internal（默认访问级别，internal修饰符可写可不写）
internal访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。
如果是框架或者库代码，则在整个框架内部都可以访问，框架由外部代码所引用时，则不可以访问。
如果是App代码，也是在整个App代码，也是在整个App内部可以访问。

3，public
可以被任何人使用




C.类扩展（extension）
Swift语言的类扩展是一个强大的工具，我们可以通过类扩展完成如下事情：
1，给已有的类添加计算属性和计算静态属性
2，定义新的实例方法和类方法
3，提供新的构造器
4，定义下标脚本
5，是一个已有的类型符合某个协议
（注意：扩展只能添加新的计算型属性，不能添加存储型属性，也不能添加新的属性监视器）




D.协议（protocol）
1.Swift中协议类似于别的语言里的接口，协议里只做方法的声明，包括方法名、返回值、参数等信息，而没有具体的方法实现。
2.协议可以继承另一个协议

